#ifndef DEBUGGING_HPP
#define DEBUGGING_HPP

#include "ExceptionNumbers.hpp"

#ifdef DEBUG
 #define FUNCTION std::cout << __PRETTY_FUNCTION__ << std::endl;
#else
 #define FUNCTION
#endif

#ifdef DEBUG
 #define ASSERT(x)\
         if(!(x))\
         {\
           std::cout << std::endl << "Error: Assert \'" << #x << "\' failed "\
                     << __LINE__ << ", " << __FILE__ << std::endl;\
           throw EXCEPTION_ASSERT;\
         }
#else
 #define ASSERT(x)
#endif

#endif
